package com.scada.dao;

import java.util.List;
import java.util.Map;

import com.scada.model.bean.SysMenu;
import com.scada.model.bean.vo.MenuVO;




public interface IMenuDao {

	
	
	/** 
	 * @FunctionName: selectMenuIsleaf
	 * @Description: 查询一级菜单
	 * @author: 黄胜
	 * @date: 2016年10月27日 上午10:28:14 
	 * @param map
	 * @return 
	 */
	public List<SysMenu> selectMenuIsleaf(Map<String, Object> map);
	
	/**
	 * 查询二级三级的菜单数据
	 * 黄胜
	 * 2016-10-14
	 * @return
	 */
	public List<MenuVO> selectMenuList(Map<String, Object> map);
	
	/** 
	 * @FunctionName: findLeftMenuById
	 * @Description: 根据用户ID查询权限菜单的下级权限
	 * @author: 沈浩
	 * @date: 2016年12月13日 下午3:17:41 
	 * @param map key userId id
	 * @return 
	 */
	public List<MenuVO> findLeftMenuById(Map<String, Integer> map);
	
	
	/** 
	 * @FunctionName: selectAllData
	 * @Description:  查找所有菜单数据
	 * @author: 黄胜
	 * @date: 2016年10月28日 下午3:33:15 
	 * @param state 状态 0 ：显示 1： 删除
	 * @return SysMenu
	 */
	public List<SysMenu> selectAllData(int state);
	
	/** 
	 * @FunctionName: findLeftMenuByUserIdNoParent
	 * @Description: 根据用户ID权限查询没有父级的菜单
	 * @author: 沈浩
	 * @date: 2016年12月13日 上午11:10:26 
	 * @param userId
	 * @return 返回所有菜单的id list
	 */
	public List<Integer> findLeftMenuByUserIdNoParent(Integer userId);
	
	/** 
	 * @FunctionName: findLeftMenuByUserIdParent
	 * @Description: 根据用户ID权限查询有父级的菜单
	 * @author: 沈浩
	 * @date: 2016年12月13日 上午11:21:55 
	 * @param userId
	 * @return 返回父级菜单的id list
	 */
	public List<Integer> findLeftMenuByUserIdParent(Integer userId);
	
	/** 
	 * @FunctionName: findLeftMenuByIdList
	 * @Description: 通过ID list查询所有菜单
	 * @author: 沈浩
	 * @date: 2016年12月13日 上午11:27:21 
	 * @param id
	 * @return 
	 */
	public List<SysMenu> findLeftMenuByIdList(List<Integer> id);
	
	public List<SysMenu> findFirstMenuByRole(Integer userId);
	
	public List<MenuVO> findLeftMenuByPid(Map<String, Integer> map);
	
}
